#pragma once

namespace net_tools::base::detail{
template<bool>
struct CompileTimeChecker{
  CompileTimeChecker(...);
};
template<>
struct CompileTimeChecker<false>{};

} // namespace net_tools::base

#define STATIC_CHECK(expr,msg)\
{\
  class ERROR_##msg{};\
  sizeof(net_tools::base::detail::CompileTimeChecker<(expr)>(ERROR_##msg()));\
}